package oj_leetcode;

import java.util.HashMap;
import java.util.Map;

public class RomanToInteger {
    public int romanToInt(String s) {
        Map<String,Integer> mapRoman2Order = new HashMap();
        mapRoman2Order.put("I",1);
        mapRoman2Order.put("V",2);
        mapRoman2Order.put("X",3);
        mapRoman2Order.put("L",4);
        mapRoman2Order.put("C",5);
        mapRoman2Order.put("D",6);
        mapRoman2Order.put("M",7);
        Map<String,Integer> mapRoman2Int = new HashMap();
        mapRoman2Int.put("I",1);
        mapRoman2Int.put("IV",4);
        mapRoman2Int.put("V",5);
        mapRoman2Int.put("IX",9);
        mapRoman2Int.put("X",10);
        mapRoman2Int.put("XL",40);
        mapRoman2Int.put("L",50);
        mapRoman2Int.put("XC",90);
        mapRoman2Int.put("C",100);
        mapRoman2Int.put("CD",400);
        mapRoman2Int.put("D",500);
        mapRoman2Int.put("CM",900);
        mapRoman2Int.put("M",1000);
        int res = 0;
        for(int i = 0;i<s.length();i++){
            if(i<s.length() - 1){
                if(mapRoman2Order.get(s.charAt(i)+"") < mapRoman2Order.get(s.charAt(i+1)+"")){
                    res += mapRoman2Int.get(s.charAt(i)+""+s.charAt(i+1));
                    i++;
                }else{
                    res += mapRoman2Int.get(s.charAt(i)+"");
                }
            }else{
                res += mapRoman2Int.get(s.charAt(i)+"");
            }
        }
        return res;
    }

    public static void main(String[] args) {
        System.out.println(new RomanToInteger().romanToInt("III"));
    }
}
